home *** CD-ROM | disk | FTP | other *** search
- /*Overlay.js
- File per la gestione dell'add-on sul lato browser, permette di aprire
- l'add-on quando necessario.
- */
-
- //riferimento alla finestra aperta
- var my_window=null;
- //riferimento al contenuto del browser
- var appcontent=null;
- //riferimento al contenitore delle tab
- var container=null;
-
- var OVERLAY = {
-
- onLoad: function() {
- // initialization code
- this.initialized = true;
-
- //se la pagina Φ caricata, gli associa l'evento onPageLoad
- appcontent = document.getElementById("appcontent"); // browser
- if(appcontent)
- appcontent.addEventListener("DOMContentLoaded", OVERLAY.onPageLoad, true);
-
- //The following code allows you to detect when a new tab is selected in the browser
- container = gBrowser.tabContainer;
- container.addEventListener("TabSelect", OVERLAY.onPageLoad, false);
- },
-
- //esegue operazioni finali: forse non serve!?
- onUnLoad: function() {//rimuove i listener sul onLoad
- appcontent.removeEventListener("DOMContentLoaded", OVERLAY.onPageLoad, true);
- container.removeEventListener("TabSelect", OVERLAY.onPageLoad, false);
- },
-
- onPageLoad: function(aEvent) {
- //estrae la lista di meta dalla pagina
- meta=window.content.document.getElementsByTagName("meta");
-
- //necessario nel caso in cui mentre l'add-on Φ aperto, carico una nuova pagina
- if(my_window && !my_window.closed){//la finestra Φ aperta ed esiste
- window.removeEventListener("click", OVERLAY.onFocus, false);
- my_window.close(); //chiude la finestra
- }
-
- //scorre i meta estratti per verificare se pu≥ aprire la finestra dell'add-on
- for(i=0;i<meta.length;i++){
- if(meta[i].content=="AES" || meta[i].content=="BLOWFISH" || meta[i].content=="BLOWFISH/TXT" || meta[i].content=="BLOWFISH/HEX" || meta[i].content=="AES/TXT" || meta[i].content=="AES/HEX"){
- OVERLAY.openNewWindow(); //apre la finestra
- break;//di solito dovrebbe esserci un solo meta con queste caratteristiche
- }
- }
- },
-
- openNewWindow: function() {
- //la finestra da aprire Φ la crypt.xul, la apro come dialog per togliere la Maximize button
- my_window=window.open("chrome://crypt/content/crypt.xul", "", "chrome,dialog");
- //sposta la finestra aperta nel centro dello schermo
- my_window.moveTo(Math.floor((window.outerWidth/2)-my_window.outerWidth)+window.screenX,Math.floor((window.outerHeight/2)-my_window.outerHeight)+window.screenY-50);
- //associa l'evento onFocus alla finestra aperta, in modo che per tornare a navigare si debba prima chiuderla
- window.addEventListener("click", OVERLAY.onFocus, false);
- },
-
- onFocus: function() {
- //se la finestra esiste e non Φ chiusa
- if(my_window && !my_window.closed)
- my_window.focus();
- },
-
- onMenuItemCommand: function() {//nel caso in cui clicco sul tasto nel menu o sullo short-cut
- if(my_window==null || my_window.closed){//se l'add-on non Φ mai stato aperto o Φ chiuso
- OVERLAY.openNewWindow();
- }
- }
- };
-
- //serve per dirgli cosa fare ad ogni apertura di una nuova finestra di navigazione
- window.addEventListener("load", function(e) { OVERLAY.onLoad(e); window.removeEventListener("load", arguments.callee, false);}, false);
-
- //serve per dirgli cosa fare ad ogni chiusura di una finestra di navigazione
- window.addEventListener("unload", function(e) { OVERLAY.onUnLoad(e); window.removeEventListener("unload", arguments.callee, false);}, false);
-